package com.example.algorithm;

/**
 * 先来个有意思的实验
 *
 * 一开始有100个人，每个人都有100元
 * 在每一轮都做如下的事情 :
 * 每个人都必须拿出1元钱给除自己以外的其他人，给谁完全随机
 * 如果某个人在这一轮的钱数为0，那么他可以不给，但是可以接收
 * 发生很多很多轮之后，这100人的社会财富分布很均匀吗？
 *
 * 既然是程序员，当然用代码做实验啊
 */
public class Main {
    public static void main(String[] args) {
        int[] nums = new int[100];
        for (int i = 0; i < nums.length; i++) {
            nums[i] = 100;
        }

        for (int i = 0; i < 100; i++) {
            for (int j = 0; j < nums.length; j++) {
                if (nums[j] == 0) {
                    continue;
                }
                int give = -1;
                while (give != j) {
                    give = (int) (Math.random() * nums.length);
                }
                nums[give]++;
                nums[j]--;
            }
        }

        for (int i = 0; i < nums.length; i++) {
            System.out.printf("%d ", nums[i]);
        }
    }
}